Cos'è can bus?

CAN Bus (Controller Area Network)

Il CAN bus (Controller Area Network) è un protocollo di comunicazione seriale robusto, utilizzato principalmente in ambito automotive per permettere a vari microcontrollori e dispositivi di comunicare tra loro senza l'utilizzo di un computer host. È un sistema distribuito, il che significa che ogni nodo (ECU - Electronic Control Unit) è intelligente e può comunicare con gli altri nodi sulla rete.

Caratteristiche principali:

  • Comunicazione multi-master: Qualsiasi nodo può trasmettere messaggi quando il bus è libero.
  • Priorità dei messaggi: I messaggi vengono inviati con priorità, assicurando che i messaggi critici vengano trasmessi prima. La priorità è determinata dall'ID del messaggio.
  • Robustezza: Progettato per operare in ambienti rumorosi ed elettromagneticamente ostili, come quelli all'interno di un'automobile. Utilizza segnalazione differenziale per ridurre gli effetti del rumore.
  • Affidabilità: Include meccanismi di rilevamento e gestione degli errori, come il controllo di ridondanza ciclica (CRC) per garantire l'integrità dei dati.
  • Efficienza: Utilizza un protocollo di arbitraggio non distruttivo, il che significa che il nodo con il messaggio più alto di priorità vince sempre l'accesso al bus.

Componenti principali:

  • Controller CAN: È il chip che implementa il protocollo CAN.
  • Transceiver CAN: Interfaccia fisica tra il controller CAN e il bus fisico. Converte i segnali logici dal controller CAN in segnali differenziali per la trasmissione sul bus.
  • Bus: Il mezzo fisico (di solito una coppia di fili intrecciati) attraverso il quale i dati vengono trasmessi.

Applicazioni:

  • Automotive: Centralina motore (ECU), sistema frenante antibloccaggio (ABS), airbag, controllo della trasmissione, servosterzo elettronico, body control module (BCM), ecc.
  • Industria: Automazione industriale, robotica, controllo di macchine.
  • Medicale: Dispositivi medici.
  • Aerospaziale: Sistemi di controllo di volo.

Standard:

  • CAN 2.0A (Standard CAN): Utilizza ID a 11 bit (2048 ID possibili).
  • CAN 2.0B (Extended CAN): Utilizza ID a 29 bit (536,870,912 ID possibili).

Funzionamento:

Quando un nodo vuole trasmettere un messaggio, attende che il bus sia libero. Inizia quindi a trasmettere il frame CAN. Se un altro nodo tenta di trasmettere contemporaneamente un messaggio con una priorità più alta, quest'ultimo vince l'arbitraggio e il nodo con la priorità più bassa smette di trasmettere e ritenta quando il bus è di nuovo libero. Tutti gli altri nodi sulla rete ascoltano il messaggio. Ogni nodo controlla l'ID del messaggio e, se è rilevante per quel nodo, lo elabora. Altrimenti, lo ignora.

Vantaggi:

  • Riduzione del cablaggio: Un singolo CAN bus può sostituire molti cablaggi dedicati, risparmiando peso e costi.
  • Flessibilità: Facile aggiungere o rimuovere nodi dalla rete.
  • Affidabilità: I meccanismi di gestione degli errori garantiscono un'elevata integrità dei dati.

Svantaggi:

  • Larghezza di banda limitata: La velocità di trasmissione è limitata, soprattutto per le applicazioni che richiedono un'elevata quantità di dati.
  • Complessità: La configurazione e la gestione di una rete CAN possono essere complesse.
  • Sicurezza: Le vulnerabilità di sicurezza del CAN bus sono state sfruttate in alcuni attacchi informatici ai veicoli.

Concetti chiave: